Micron Document
Aleph Git

Node / reticulum / sideband / files / docs / example_plugins / bme280_telemetry.py

Displaying Raw • Download

docs/example_plugins/bme280_telemetry.py HEAD (8b8a5035) Text, 2.53 KB

T8b949e# This plugin provides temperature, humidity
T8b949e# and pressure data via a BME280 sensor
T8b949e# connected over I2C. The plugin requires
T8b949e# the "smbus2" and "RPi.bme280" modules to
T8b949e# be available on your system. These can be
T8b949e# installed with:
T8b949e#
T8b949e# pip install smbus2 RPi.bme280

Tff7b72import T7ee787os
Tff7b72import T7ee787RNS
Tff7b72from T7ee787importlibT7ee787.T7ee787util Tff7b72import Te6edf3find_spec

Tff7b72class T56d364BME280PluginTb4b4b4(Te6edf3SidebandTelemetryPluginTb4b4b4)Tb4b4b4:
Te6edf3plugin_name Tff7b72= Ta5d6ff"Ta5d6fftelemetry_bme280Ta5d6ff"

Te6edf3I2C_ADDRESS Tff7b72= T79c0ff0x76
Te6edf3I2C_BUS Tff7b72= T79c0ff1

T8b949e# If your BME280 has an offset from the true
T8b949e# temperature, you can compensate for this
T8b949e# by modifying this parameter.
Te6edf3TEMPERATURE_CORRECTION Tff7b72= T79c0ff0.0

Tff7b72def Td2a8ffstartTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffBME280 telemetry plugin starting...Ta5d6ff"Tb4b4b4)

Tff7b72if Te6edf3find_specTb4b4b4(Ta5d6ff"Ta5d6ffsmbus2Ta5d6ff"Tb4b4b4)Tb4b4b4: Tff7b72import T7ee787smbus2
Tff7b72elseTb4b4b4: Tff7b72raise Tf85149OSErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffNo smbus2 module available, cannot start BME280 telemetry pluginTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3find_specTb4b4b4(Ta5d6ff"Ta5d6ffbme280Ta5d6ff"Tb4b4b4)Tb4b4b4: Tff7b72import T7ee787bme280
Tff7b72elseTb4b4b4: Tff7b72raise Tf85149OSErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffNo bme280 module available, cannot start BME280 telemetry pluginTa5d6ff"Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsensor_connected Tff7b72= Tff7b72False

Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffbme280 Tff7b72= Te6edf3bme280
Tff7b72selfTff7b72.Td2a8ffaddress Tff7b72= Tff7b72selfTff7b72.Td2a8ffI2C_ADDRESS
Tff7b72selfTff7b72.Td2a8ffbus Tff7b72= Te6edf3smbus2Tff7b72.Td2a8ffSMBusTb4b4b4(Tff7b72selfTff7b72.Td2a8ffI2C_BUSTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcalibration Tff7b72= Tff7b72selfTff7b72.Td2a8ffbme280Tff7b72.Td2a8ffload_calibration_paramsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffbusTb4b4b4, Tff7b72selfTff7b72.Td2a8ffaddressTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsensor_connected Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8fftc Tff7b72= Tff7b72selfTff7b72.Td2a8ffTEMPERATURE_CORRECTION
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffCould not connect to I2C device while starting BME280 telemetry pluginTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffThe contained exception was: Tffd700{Te6edf3eTffd700}Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffstopTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffbusTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstopTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffupdate_telemetryTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3telemeterTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3telemeter Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsensor_connectedTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3sample Tff7b72= Tff7b72selfTff7b72.Td2a8ffbme280Tff7b72.Td2a8ffsampleTb4b4b4(Tff7b72selfTff7b72.Td2a8ffbusTb4b4b4, Tff7b72selfTff7b72.Td2a8ffaddressTb4b4b4, Tff7b72selfTff7b72.Td2a8ffcalibrationTb4b4b4)Tb4b4b4; Te6edf3ts Tff7b72= Te6edf3telemeterTff7b72.Td2a8ffsensors
Te6edf3telemeterTff7b72.Td2a8ffsynthesizeTb4b4b4(Ta5d6ff"Ta5d6fftemperatureTa5d6ff"Tb4b4b4)Tb4b4b4; Te6edf3tsTb4b4b4[Ta5d6ff"Ta5d6fftemperatureTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffdata Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4: Tffa657roundTb4b4b4(Te6edf3sampleTff7b72.Td2a8fftemperatureTff7b72+Tff7b72selfTff7b72.Td2a8fftcTb4b4b4,T79c0ff1Tb4b4b4)Tb4b4b4}
Te6edf3telemeterTff7b72.Td2a8ffsynthesizeTb4b4b4(Ta5d6ff"Ta5d6ffhumidityTa5d6ff"Tb4b4b4)Tb4b4b4; Te6edf3tsTb4b4b4[Ta5d6ff"Ta5d6ffhumidityTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffdata Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffpercent_relativeTa5d6ff"Tb4b4b4: Tffa657roundTb4b4b4(Te6edf3sampleTff7b72.Td2a8ffhumidityTb4b4b4,T79c0ff1Tb4b4b4)Tb4b4b4}
Te6edf3telemeterTff7b72.Td2a8ffsynthesizeTb4b4b4(Ta5d6ff"Ta5d6ffpressureTa5d6ff"Tb4b4b4)Tb4b4b4; Te6edf3tsTb4b4b4[Ta5d6ff"Ta5d6ffpressureTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffdata Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffmbarTa5d6ff"Tb4b4b4: Tffa657roundTb4b4b4(Te6edf3sampleTff7b72.Td2a8ffpressureTb4b4b4,T79c0ff1Tb4b4b4)Tb4b4b4}

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffAn error occurred while updating BME280 sensor dataTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffThe contained exception was: Tffd700{Te6edf3eTffd700}Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Te6edf3plugin_class Tff7b72= Te6edf3BME280Plugin

Served by rngit 1.4.2 - Generated in 0.05s